home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2007 January, February, March & April
/
Chip-Cover-CD-2007-02.iso
/
Pakiet bezpieczenstwa
/
mini Pentoo LiveCD 2006.1
/
mpentoo-2006.1.iso
/
livecd.squashfs
/
usr
/
include
/
reiser4
/
tree.h
< prev
next >
Wrap
C/C++ Source or Header
|
2006-01-09
|
6KB
|
192 lines
/* Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by
reiser4progs/COPYING.
tree.h -- reiser4 balanced tree functions. */
#ifndef REISER4_TREE_H
#define REISER4_TREE_H
#include <reiser4/types.h>
#define REISER4_TREE_MAX_HEIGHT 10
extern void reiser4_tree_close(reiser4_tree_t *tree);
extern errno_t reiser4_tree_adjust(reiser4_tree_t *tree);
extern errno_t reiser4_tree_collapse(reiser4_tree_t *tree);
extern reiser4_tree_t *reiser4_tree_init(reiser4_fs_t *fs);
extern errno_t reiser4_tree_root_key(reiser4_tree_t *tree,
reiser4_key_t *key);
extern errno_t reiser4_tree_walk_node(reiser4_tree_t *tree,
reiser4_node_t *node,
#ifndef ENABLE_MINIMAL
walk_func_t pre_func,
walk_on_func_t on_func,
#endif
walk_func_t post_func);
extern errno_t reiser4_tree_next_place(reiser4_tree_t *tree,
reiser4_place_t *place,
reiser4_place_t *next);
extern errno_t reiser4_tree_place_key(reiser4_tree_t *tree,
reiser4_place_t *place,
reiser4_key_t *key);
extern errno_t reiser4_tree_connect_node(reiser4_tree_t *tree,
reiser4_node_t *parent,
reiser4_node_t *node);
extern errno_t reiser4_tree_disconnect_node(reiser4_tree_t *tree,
reiser4_node_t *node);
extern reiser4_node_t *reiser4_tree_child_node(reiser4_tree_t *tree,
reiser4_place_t *place);
#ifndef ENABLE_MINIMAL
extern errno_t reiser4_tree_discard_node(reiser4_tree_t *tree,
reiser4_node_t *node);
extern inline uint32_t reiser4_tree_target_level(reiser4_tree_t *tree,
reiser4_plug_t *plug);
extern bool_t reiser4_tree_fresh(reiser4_tree_t *tree);
extern bool_t reiser4_tree_minimal(reiser4_tree_t *tree);
extern bool_t reiser4_tree_singular(reiser4_tree_t *tree);
extern errno_t reiser4_tree_sync(reiser4_tree_t *tree);
extern errno_t reiser4_tree_growup(reiser4_tree_t *tree);
extern errno_t reiser4_tree_dryout(reiser4_tree_t *tree);
extern errno_t reiser4_tree_compress(reiser4_tree_t *tree);
extern void reiser4_tree_set_root(reiser4_tree_t *tree, blk_t blk);
extern void reiser4_tree_set_height(reiser4_tree_t *tree, uint8_t height);
extern int64_t reiser4_tree_insert(reiser4_tree_t *tree,
reiser4_place_t *place,
trans_hint_t *hint,
uint8_t level);
extern int64_t reiser4_tree_write(reiser4_tree_t *tree,
reiser4_place_t *place,
trans_hint_t *hint,
uint8_t level);
extern errno_t reiser4_tree_remove(reiser4_tree_t *tree,
reiser4_place_t *place,
trans_hint_t *hint);
extern errno_t reiser4_tree_shift(reiser4_tree_t *tree,
reiser4_place_t *place,
reiser4_node_t *neig,
uint32_t flags);
extern errno_t reiser4_tree_shrink(reiser4_tree_t *tree,
reiser4_place_t *place);
extern int32_t reiser4_tree_expand(reiser4_tree_t *tree,
reiser4_place_t *place,
reiser4_place_t *parent,
uint32_t ilen,
uint32_t ioverh,
uint32_t flags);
extern errno_t reiser4_tree_trav(reiser4_tree_t *tree,
tree_open_func_t open_func,
node_func_t before_func,
place_func_t update_func,
node_func_t after_func,
void *data);
extern errno_t reiser4_tree_update_keys(reiser4_tree_t *tree,
reiser4_place_t *place,
reiser4_key_t *key);
extern errno_t reiser4_tree_assign_root(reiser4_tree_t *tree,
reiser4_node_t *node);
extern errno_t reiser4_tree_load_root(reiser4_tree_t *tree);
extern reiser4_node_t *reiser4_tree_alloc_node(reiser4_tree_t *tree,
uint8_t level);
extern errno_t reiser4_tree_unlock_node(reiser4_tree_t *tree,
reiser4_node_t *node);
extern bool_t reiser4_tree_attached_node(reiser4_tree_t *tree,
reiser4_node_t *node);
extern errno_t reiser4_tree_attach_node(reiser4_tree_t *tree,
reiser4_node_t *node,
reiser4_place_t *place,
uint32_t flags);
extern errno_t reiser4_tree_detach_node(reiser4_tree_t *tree,
reiser4_node_t *node,
uint32_t flags);
extern errno_t reiser4_tree_trav_node(reiser4_tree_t *tree,
reiser4_node_t *node,
tree_open_func_t open_func,
node_func_t before_func,
place_func_t update_func,
node_func_t after_func,
void *data);
extern int64_t reiser4_tree_modify(reiser4_tree_t *tree, reiser4_place_t *place,
trans_hint_t *hint, uint8_t level,
estimate_func_t estimate_func,
modify_func_t modify_func);
extern errno_t reiser4_tree_copy(reiser4_tree_t *src_tree,
reiser4_tree_t *dst_tree);
extern errno_t reiser4_tree_resize(reiser4_tree_t *tree,
count_t blocks);
extern uint8_t reiser4_tree_get_height(reiser4_tree_t *tree);
extern errno_t reiser4_tree_rehash_node(reiser4_tree_t *tree,
reiser4_node_t *node,
blk_t new_blk);
#endif
extern blk_t reiser4_tree_get_root(reiser4_tree_t *tree);
extern uint32_t reiser4_tree_get_blksize(reiser4_tree_t *tree);
extern errno_t reiser4_tree_unload_node(reiser4_tree_t *tree,
reiser4_node_t *node);
extern errno_t reiser4_tree_release_node(reiser4_tree_t *tree,
reiser4_node_t *node);
extern lookup_t reiser4_tree_collision(reiser4_tree_t *tree,
reiser4_place_t *place,
coll_hint_t *hint);
extern lookup_t reiser4_collision_handler(reiser4_place_t *place,
lookup_bias_t bias,
lookup_t lookup,
void *data);
extern reiser4_node_t *reiser4_tree_lookup_node(reiser4_tree_t *tree,
blk_t blk);
extern reiser4_node_t *reiser4_tree_load_node(reiser4_tree_t *tree,
reiser4_node_t *parent,
blk_t blk);
extern lookup_t reiser4_tree_lookup(reiser4_tree_t *tree, lookup_hint_t *hint,
lookup_bias_t bias, reiser4_place_t *place);
extern errno_t reiser4_tree_scan(reiser4_tree_t *tree,
node_func_t pre_func,
place_func_t func,
void *data);
#endif